OpenTelemetry 기반 하이브리드 클라우드 Kubernetes 환경의 Observability 구축

개요

OpenTelemetry 는 분산된 시스템의 모니터링과 추적을 위한 표준화된 도구입니다.
스마일게이트의 하이브리드 클라우드 Kubernetes 환경에서 OpenTelemetry 를 사용하여 Observability 를 고도화한 사례를 소개합니다.
기존 사용하던 Observability 의 한계점을 소개하고, OpenTelemetry 와 Grafana LGTM (Log, Metrics, Tracing)를 활용하여 다수의 서비스 클러스터를 관측하기 위해 하나의 Observability 클러스터를 구성한 을 경험을 소개합니다.
이를 통해 스마일게이트 플랫폼 서비스의 서비스 가시성을 높일 수 있던 경험과 구축 과정에서의 트러블 슈팅 및 해결 방법을 공유하며 Cloud Native 하게 Observability 를 고도화한 사례에 대해 발표할 예정입니다.

발표

관측가능성이란?

모니터링과 비슷하지만 조금 다르다.
시스템의 상태를 지속적으로 감시하고, metric과 trace까지 합하여 예상치 못한 문제도 분석
사전, 사후 대응도 포함된 개념

크게 3 개념
log, metric, trace

기존 관측가능성 운영 환경

기존에도 lgtm 스택 활용
promtail로 로그 모으고 loki가 수집
프메로 메트릭 가져옴
pinpoint 활용하여 트레이싱
모든 시각화는 그라파나

여러 클러스터에서는 그라파나는 하나로 관리

그러나 부족한 부분

opentelemetry, lgtm 을 통한 cloud native 환경 구축

그래서 도입!

opentelemetry

별다줄 오텔
단일 툴로 통일된 형태로 지표 수집
통일된 프로토콜을 사용하도록 지정

구성요소

사내 적용

로그

otlp에서 컬렉터로 전송
컬렉터

메트릭

기존에는 타노스로 오래 저장
이것도 컬렉터 사용
이번엔 mimir 사용
데이터 압축, 저장 잘해오

이때 istio 관련은 커스텀 메트릭이 너무 많아서 alloy라는 컴포넌트를 넣음
alloy도 다운샘플링 지원. 타노스 쌉 상위호환
프메를 대체서 메트릭 수집. 일부를 필터링하며 클러스터 모드로 구성됨
ha 가능
로그 스트림 방식이라 클러스터 레벨 로그 수집 가능

트레이스

이번에는 템포 사용
다 컬렉터를 거치는 과정을 둠
템포는 오브젝트 스토리지를 사용해서 간편하고 장기 보관 적합하다

멀티 클러스터 적용

관측용 클러스터 따로 구축
컬렉터 부분까지 떼어내서 따로 구성

장점

하나의 대시보드에서 관리 가능
아까 말한 것들 해결됨

QnA

참고